1) Field of the Invention
The present invention relates to a distributed transaction processing system that can prevent blocking.
2) Description of the Related Art
In a distributed transaction processing, a two-phase commitment control is well known to ensure atomicity of a transaction (for example, see http://www.sei.cmu.edu/str/descriptions/dptc.html). In the two-phase commitment control, a master server (coordinator) sends a local transaction request to a plurality of slave servers (participants). Then the master server sends a commitment request to the slave servers only when receiving a success reply from all the slave servers. Otherwise, the master server sends an abort request to the slave servers. Thus, the databases in the slave servers are all updated or not updated at all, thereby ensuring the atomicity.
In the two-phase commitment control, however, the slave servers cannot determine processing to be subsequently performed after sending the reply, unless receiving the commitment request or the abort request from the master server. Therefore, when a fault occurs in the master server, the slave servers have to wait until the master server recovers from the fault, which is known as “blocking”.
To avoid the blocking, a three-phase commitment control has been suggested (for example, see pages 41 to 50 of “Non Blocking Atomic Commitment with an Unreliable Failure Detector”, by Rachild Gucrraoui, Mikel Larrea and Andre Schiper, in Proc. of the 14th Symposium on Reliable Distributed Systems, 1995, the Internet URL: http://ei.cs.vt.edu/˜williams/OS/ThreePhase.html and the Internet URL: http://www.seas.gwu.edu/˜shmuel/cs251/3PC.html). In the three-phase commitment control, even when a fault occurs in any one of the servers, the transaction processing is continued in other servers while ensuring the atomicity. However, overhead increases in the three-phase commitment control as compared to the two-phase commitment control.